#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//int max(int h, int g, int y)
//{
//	int s = h > g ? h : g;
//	int ma = s > y ? s : y;
//	return ma;
//}
//int main()
//{
//	int a,b,c;
//	scanf("%d%d%d", &a, &b, &c);
//	int  i = max(a, b, c);
//	int  j = max(a + b, b, c);
//	int  k = max(a, b, c+b);
//	printf("%.3lf", i / (double)(j * k));
//	return 0;
//}
//int main()
//{
//	int a, b;
//	char c;
//	scanf("%d%c%d", &a, &c, &b);
//	switch (c)
//	{
//	case('+'):printf("%d", a + b); break;
//	case('-'):printf("%d", a - b); break;
//	case('*'):printf("%d", a * b); break;
//	case('/'):printf("%d", a / b); break;
//	case('%'):printf("%d", a % b);
//	}
//	return 0;
//}
//struct passion {
//	char a[8];
//	float tmp;
//	int flag;
//};
//int main()
//{
//	int n;
//	scanf("%d", &n);
//	int count = 0;
//	struct passion s[200];
//	int i = 0;
//	for (i = 0; i < n; i++)
//scanf("%s%f%d", &s[i].a, &s[i].tmp, &s[i].flag);
//	for (i = 0; i < n; i++)
//	{
//		if (s[i].tmp >= 37.5 && s[i].flag)
//		{
//			printf("%s\n", s[i].a);
//			count++;
//		}
//	}
//	printf("%d", count);
//	return 0;
//}
#include <math.h>
int main()
{
	int n;
	scanf("%d", &n);
	int i = 0;
	int s = 2;
	int count = 0;
	int flag = 0;
	int t = 1;
	int j = 2;
	for (i = 3; i <= n; i++)
	{
		for (j = 2; j <= sqrt(i); j++)
		{
			if (i % j == 0)
				flag = 1;
		}

		if (flag == 0)
		{
			if (i - s == 2)
			{
				printf("%d %d\n", s, i);
			}
			s = i;
		}
		flag = 0;
	}
	if (count == 0)
		printf("empty");
	return 0;
}
